// 请求封装

// 引入axios
import axios from "axios";

let baseURL = '/api'
const service = axios.create({
    baseURL,
    timeout: 10000,
})

// 封装请求拦截器 token放在请求头
// x-access-token' token在后台的名称
service.interceptors.request.use(
    config=>{
        // 获取存储在 localStorage 中的token
        const token = localStorage.getItem('token')
        // 有token，说明登录成功，返回token，没有不做处理
        if(token){
            config.headers['x-access-token'] = token
        }        
        return config
    },
    // 请求失败
    error=>{
        return Promise.reject(error)
    }
)
// 封装响应拦截器
service.interceptors.response.use(
    response =>{
        const res = response.data
        // 判断状态码不是200 返回错误信息
        if(response.status !== 200){
            return Promise.reject(new Error(res.success || 'error'))
        }else{
            // 状态是200，返回数据
            if(response.status == 200){
                return res.result
            }else{
                // 请求失败
                alert(res.success)
            }
        }
    },
    // 请求失败
    error=>{
        return Promise.reject(error)
    }
)

export default service